This invention relates to programmable logic devices, and more particularly to circuitry for improving the multiplexing capabilities of programmable logic devices.
Programmable logic devices are well known as shown, for example, by Cliff et al. U.S. Pat. No. 5,689,195, Cliff et al. U.S. Pat. No. 5,909,126, Cliff et al. U.S. Pat. No. 5,963,049, Reddy et al. U.S. Pat. No. 5,977,793, and McClintock et al. U.S. Pat. No. 5,999,016, all of which are hereby incorporated by reference herein. Such devices typically include large numbers of relatively small logic modules, each of which is programmable to perform any of several relatively elementary logic functions on input signals applied to the logic module in order to produce one or more logic module output signals. A network of programmable interconnection conductors and other interconnection resources is provided on the device for conveying signals to, from, and/or between the logic modules so that very complex logic functions can be performed by concatenating multiple logic modules in various ways.
The circuitry of known programmable logic devices performs logic very well, and it can also perform some multiplexing operations. (By xe2x80x9cmultiplexingxe2x80x9d is meant the dynamic selection of any one of two or more multiplexer input signals to be the multiplexer output signal. In other words, at different times during operation of the device, a different one of the multiplexer input signals can be selected to be the multiplexer output signal.) However, known programmable logic devices tend not to perform multiplexing especially efficiently. For example, known logic modules which include a four-input look-up table may only be able to perform a single two-to-one multiplexing operation. Two of the inputs to the look-up table are used as the multiplexer input signals, a third input to the look-up table is used as a multiplexer selection control signal, and the fourth input to the look-up table may be wasted. Not only is this relatively inefficient use of a logic module, but in addition large numbers of logic modules must be used to perform wide fan-in multiplexing, and these modules must be connected in series (at least to some extent), which inherently slows down multiplexing functions.
In view of the foregoing, it is an object of this invention to provide programmable logic devices with improved multiplexing capabilities.
It is a more particular object of this invention to improve the speed, efficiency, and economy with which programmable logic devices can perform multiplexing operations.
These and other objects of the invention are accomplished in accordance with the principles of the invention by providing logic module circuitry that includes a programmable four-input look-up table and that is augmented with additional circuitry for allowing the logic module to be alternatively used as a dynamic four-to-one multiplexer.
In a first type of embodiment, the four inputs to the look-up table are also applied to the four inputs of a four-to-one multiplexer circuit, and the final output signal of the logic module is programmably selected from either the look-up table output or the multiplexer output. The four-to-one multiplexer may be controlled by control signals which are shared with other logic modules on the programmable logic device that includes the first-mentioned logic module.
In another type of embodiment, preliminary selection circuitry is used to select from more than four input signals the signals that are to be applied to the four-input look-up table. This preliminary selection circuitry may be controlled by inputs to the look-up table which are not among the signals being selected by the preliminary selection circuitry. Alternatively, this preliminary selection circuitry may be programmably controlled.
In still another type of embodiment, four-to-one multiplexer circuitry is provided to select a multiplexer output signal from signals which have been either partly processed by the look-up table circuitry of the logic module or are raw inputs to the look-up table circuitry. The multiplexer circuitry is operated by additional inputs to the logic module.
As in the first-mentioned type of embodiment, various inputs to other types of logic modules in accordance with this invention can be shared by several logic modules on a programmable logic device. Such sharing by several logic modules is especially suitable for multiplexer selection control signals.
Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description of the preferred embodiments.